package cn.dlc.com.sort;

import java.util.Arrays;

/**
 * @author 邓立川
 * @date 2021/3/14 8:46
 * @desc 选择排序
 */
public class Demo9 {

    public static void main(String[] args) {
        Integer[] arr = {2,5,8,4,6,1};
        chooseSort(arr);
        System.out.println(Arrays.toString(arr));
    }

    private static void chooseSort(Comparable[] arr){

        // 外出循环控制被比较的元素，最后剩下一个没必要比较了。
        for(int i = 0 ; i < arr.length - 1; i++) {
            // 记录当前假定的最小元素的位置
            int minIndex = i;
            // 依次获取后面待比较的元素
            for(int j = i + 1 ; j < arr.length ;j++ ) {
                // 一直拿最小的元素来比较
                if(SortUtils.greater(arr[minIndex],arr[j])) {
                    // 交换最小的元素
                    minIndex = j;
                }
            }
            // 交换起始位置的元素和最小位置的元素
            SortUtils.exchange(arr,i,minIndex);
        }
    }
}
